Commit | Line | Data |
---|---|---|
f9a12374 CE |
1 | /* |
2 | min y = 0 | |
3 | max y = 100 | |
4 | min x = 1205 | |
5 | max x = 1254 | |
6 | ||
7 | Makerfair X carriage plate adapter for the Wilson RepRap. | |
8 | Copyright (c) 2015 Clinton Ebadi <clinton@unknownlamer.org> | |
9 | ||
10 | This program is free software: you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by | |
12 | the Free Software Foundation, either version 3 of the License, or | |
13 | (at your option) any later version. | |
14 | ||
15 | This program is distributed in the hope that it will be useful, | |
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | GNU General Public License for more details. | |
19 | ||
20 | You should have received a copy of the GNU General Public License | |
21 | along with this program. If not, see <http://www.gnu.org/licenses/>. | |
22 | ||
23 | Measurements reverse engineered from | |
24 | https://github.com/RickSisco/MakerFarm-Prusa-i3v-12-Inch | |
25 | ||
26 | Intended for use with the itty bitty dual extruder series. | |
27 | ||
28 | Source needs a good cleanup. Evil loops that don't take advantage of | |
29 | the geometry of the object abound. | |
30 | ||
31 | */ | |
32 | ||
33 | use <MCAD/nuts_and_bolts.scad> | |
34 | ||
35 | carriage_height = 65; | |
36 | ||
37 | plate_width = 75; // wilson carriage is only 50mm wide! | |
38 | plate_depth = 8; // wilson default depth = 8, makerfarm = 6 | |
39 | ||
40 | plate_cut_height = 6.5; | |
41 | plate_cut_width = 6; | |
42 | plate_cut_distance = 13; | |
43 | plate_cut_center = 25.1; | |
44 | plate_cut_y_offset = 27; | |
45 | plate_cut_bolt = 3; | |
46 | plate_cut_x_bolt_offset = 10.5 + plate_cut_bolt / 2; | |
47 | ||
48 | plate_height = carriage_height + plate_cut_height + plate_cut_y_offset; //100; | |
49 | ||
50 | lower_cut_y_offset = 5.33; // 5.325 in CAD | |
51 | lower_bolt_x_offset = 1.5 + plate_cut_bolt / 2; | |
52 | lower_bolt_y_offset = 3.275 + plate_cut_bolt / 2; | |
53 | ||
54 | carriage_bolt = 4; | |
55 | carriage_hole_spacing = 24; | |
56 | carriage_clearance = 20; // holes are 20mm from bottom of plate | |
57 | carriage_y_offset = plate_cut_y_offset + plate_cut_height + carriage_clearance; | |
58 | carriage_nut_depth = 2 * 3.2 + 0.1; // m4 nut depth + tolerance | |
59 | ||
60 | corner_radius = 3; // round off the corners to make it look nicer | |
61 | ||
62 | bump_strip = false; // generate holes to mount a strip to hit the end stop -- experimental / bad code | |
63 | ||
64 | module plate_outline () { | |
65 | $fn = 16; | |
66 | difference () { | |
67 | minkowski () { | |
68 | translate ([corner_radius, corner_radius, 0]) | |
69 | square ([plate_width - corner_radius*2, plate_height - corner_radius*2]); | |
70 | circle (r = corner_radius); | |
71 | } | |
72 | ||
73 | // upper plate mount | |
74 | translate ([0, plate_cut_y_offset, 0]) { | |
75 | for (x = [-0.01, plate_cut_width + plate_cut_distance, plate_cut_width*2 + plate_cut_distance + plate_cut_center, plate_cut_width*3 + plate_cut_distance*2 + plate_cut_center + 0.01]) | |
76 | translate ([x, 0, 0]) square ([plate_cut_width, plate_cut_height]); | |
77 | ||
78 | // looks like the bolt is at the midpoint between the cut outs | |
79 | for (x = [plate_cut_x_bolt_offset, plate_width - plate_cut_x_bolt_offset]) | |
80 | translate ([x, plate_cut_height / 2, 0]) circle (d = plate_cut_bolt, $fn = 16); | |
81 | } | |
82 | ||
83 | // lower plate mount | |
84 | translate ([0, lower_cut_y_offset, 0]) { | |
85 | for (x = [-0.01, plate_width - plate_cut_width + 0.01]) { | |
86 | // lower cut out is closer to 6mm than 6.5mm in cad drawings | |
87 | translate ([x, -0.01, 0]) square ([plate_cut_width, plate_cut_height - 0.5]); | |
88 | } | |
89 | // I think the intention is for the screw holes to be centered over the cut out | |
90 | for (x = [lower_bolt_x_offset, plate_width - lower_bolt_x_offset]) | |
91 | translate ([x, plate_cut_height + lower_bolt_y_offset, 0]) circle (d = plate_cut_bolt, $fn = 16); | |
92 | } | |
93 | ||
94 | // mount to wilson x-carriage | |
95 | translate ([(plate_width - carriage_hole_spacing) / 2, carriage_y_offset, 0]) | |
96 | for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) { | |
97 | translate ([x, y, 0]) circle (d = carriage_bolt, $fn = 16); | |
98 | } | |
99 | ||
100 | if (bump_strip) { | |
101 | translate ([6, carriage_y_offset, 0]) | |
102 | for (y = [0, carriage_hole_spacing]) { | |
103 | translate ([0, y, 0]) circle (d = carriage_bolt, $fn = 16); | |
104 | } | |
105 | } | |
106 | } | |
107 | } | |
108 | ||
109 | difference () { | |
110 | linear_extrude (height = plate_depth, convexity = 50) plate_outline (); | |
111 | // after extruding, cut out spaces for M4 hex nuts (6 - 6.5mm deep, for two nuts) | |
112 | translate ([(plate_width - carriage_hole_spacing) / 2, carriage_y_offset, plate_depth - carriage_nut_depth]) { | |
113 | for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) { | |
114 | translate ([x, y, 0]) linear_extrude (height = carriage_nut_depth + 0.01) nutHole (size = carriage_bolt, proj = 1); | |
115 | } | |
116 | } | |
117 | ||
118 | if (bump_strip) { | |
119 | translate ([6, carriage_y_offset, plate_depth - carriage_nut_depth/2]) { | |
120 | for (y = [0, carriage_hole_spacing]) { | |
121 | translate ([0, y, 0]) linear_extrude (height = carriage_nut_depth/2 + 0.01) nutHole (size = carriage_bolt, proj = 1); | |
122 | } | |
123 | } | |
124 | } | |
125 | } |